package com.scy.java.object.stad;

public class Root {
    {
        System.out.println("我是父类非静态代码块");
    }
    static{
        System.out.println("我是父类静态代码块");
    }

    public Root() {
        System.out.println("我是父类无参构造器");
    }
    public static void run(){
        System.out.println("我是父类蹦蹦跳跳。。。。");
    }
    public  void run1(){
        System.out.println("我是父类蹦蹦跳跳上学。。。。");
    }
    public static void main(String[] args) {
//        Root.run();

//        Root rt=new Root();
//        System.out.println(rt);
        /**
         * 上述代码执行顺序
         * 静态代码块——>静态方法——>非静态代码块——>构造方法——>成员方法。
         */
        new Mid();
    }
}
    class Mid extends Root{
        static {
            System.out.println("我是子类的静态代码块");
        }
        {
            System.out.println("我是子类的非静态代码块");
        }

        public Mid() {
            System.out.println("我是子类构造器方法");
        }
        /**
         * 上述代码执行顺序
         * 静态代码块——>静态方法——>
         * (先执行父类)。
         * 非静态代码块——>构造方法——>成员方法。
         */
    }
